import { Config } from './config.js';
var app = getApp();
class Token {
  constructor() {
    this.verifyUrl = Config.restUrl + 'token/verify';
    this.tokenUrl = Config.restUrl + 'token/login';
  }
  verify() {
    var token = my.getStorageSync({ key: 'token' });
    if (app.globalData.shopid > 0) {
      //还需要判断当前用户是否已经存在
      var shopid = app.globalData.shopid;
    }else{
       var shopid = 0;
    }
    if (!token) {

      this.getTokenFromServer(shopid);
    }
    else {
      this._veirfyFromServer(token);

    }
  }

  _veirfyFromServer(token) {
    var that = this;
    my.request({
      url: that.verifyUrl,
      method: 'POST',
      data: {
        token: token.data
      },
      success: function (res) {
        if (res.data.data == false) {
          that.getTokenFromServer();
        }
      },
      fail: function (err) {

      }
    })
  }

  getTokenFromServer(shopid) {
    my.getAuthCode({
      scopes: 'auth_user', // 主动授权（弹框）：auth_user，静默授权（不弹框）：auth_base
      success: (res) => {
        if (res.authCode) {
          // 认证成功
          // 调用自己的服务端接口，让服务端进行后端的授权认证，并且种session，需要解决跨域问题
          let authCode = res.authCode;
          my.request({
            url: 'https://www.qqzuji.com/api/Token/login?authCode=' + authCode+'&shopid='+shopid, // 该url是自己的服务地址，实现的功能是服务端拿到authcode去开放平台进行token验证
            success: (res) => {
              if (res.data.code == 1) {
                my.setStorageSync({
                  key: 'token',
                  data: res.data.data,
                });
              }

            },
            fail: () => {
              // 根据自己的业务场景来进行错误处理
            },
          });
        }
      },
    })
  }


}
export { Token };